package com.xfusion.chatglm.data.config;

import com.google.common.eventbus.EventBus;
import com.xfusion.chatglm.data.trigger.mq.OrderPaySuccessListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @description 使用Guava作为监听消息
 */
@Configuration
public class GuavaConfig {
    /**
     * 接受一个事件监听器，方法内部创建一个新的EventBus对象，然后将传入的监听器对象注册到这个EventBus
     * 上，最后返回这个EventBus对象。
     * @param listener
     * @return
     */

    //消息总线，这里写的是OrderPaySuccessListener（订单支付成功发货流程），EventBus将会发布消息到这里，但是eventBus传入的参数要和OrderPaySuccessListener的参数一致
    @Bean
    public EventBus eventBusListener(OrderPaySuccessListener listener) {
        EventBus eventBus = new EventBus();
        eventBus.register(listener);
        return eventBus;
    }

}
